package com.techsoul.module.pms.pojo.vo;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.techsoul.common.core.annotation.ExcelField;
import com.techsoul.module.accounting.pojo.vo.AccountingArVo;
import com.techsoul.module.pms.pojo.entity.TWmsReciptIntoLocPlan;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.models.auth.In;
import lombok.Data;
import lombok.experimental.Accessors;
import org.apache.poi.hpsf.Decimal;

import java.io.Serializable;

import java.util.Date;
import java.util.List;

/**
 * 入库计划明细 Vo
 * 
 * @author liuen
 * @date 2022-01-25
 */
@Data
@Accessors(chain = true)
public class TbWmsMaterialReceiptLineVo implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty("")
    private Long lineNo;
    @ApiModelProperty("工厂")
    @ExcelField(title = "工厂", sort = 10,column=1)
    private String customerNo;

    @ApiModelProperty("仓库")
    @ExcelField(title = "库存地点 ", sort = 20 ,column=2)
    private String stageNo;

    @ApiModelProperty("物料凭证")
    @ExcelField(title = "物料凭证 ", sort = 30 ,column=3)
    private String materialSlipNo;

    @ApiModelProperty("退工厂备注")
    @ExcelField(title = "退工厂备注 ", sort = 40 ,column=4)
    private String remark;

    @ApiModelProperty("操作人")
    @ExcelField(title = "操作人 ", sort = 50,column=5)
    private String createBy;

    @ApiModelProperty("移动类型")
    @ExcelField(title = "移动类型 ", sort = 60,column=6)
    private String moveType;

    @ApiModelProperty("销售订单号")
    @ExcelField(title = "销售订单号 ", sort = 70,column=7)
    private String  salesOrderNo;

    @ApiModelProperty("销售订单创建日期")
    @ExcelField(title = "销售订单创建日期 ", sort = 80,column=8)
    private Date salesDate;
    @ApiModelProperty("销售订单行项")
    @ExcelField(title = "销售订单行项 ", sort = 90,column=9)
    private String salesOrderSingleLineItem;
    @ApiModelProperty("销售订单类型")
    @ExcelField(title = "销售订单类型 ", sort = 100,column=10)
    private String salesOrderType;

    @ApiModelProperty("计划入库日期")
    @ExcelField(title = "计划入库日期 ", sort = 110,column=11)
    private Date planInBoundDate;

    @ApiModelProperty("应入库日期")
    @ExcelField(title = "应入库日期 ", sort = 120,column=12)
    private Date shouldInDate;
    @ApiModelProperty("首次入库日期")
    @ExcelField(title = "应入库日期 ", sort = 130,column=13)
    private Date firstInBoundDate;

    @ApiModelProperty("实际入库日期")
    @ExcelField(title = "实际入库日期 ", sort = 140,column=14)
    private Date receivedTime;

    @ApiModelProperty("实际入库时间")
    @ExcelField(title = "实际入库时间 ", sort = 150,column=15)
    private String receiveHourTime; //需要和实际入库日期一起拼接到实际入库日期

    @ApiModelProperty("生产车间")
    @ExcelField(title = "生产车间 ", sort = 160,column=16)
    private String manufactoryDept;

    @ApiModelProperty("入库数量")
    @ExcelField(title = "入库数量 ", sort = 170,column=17)
    private Double quantity;

    @ApiModelProperty("品牌")
    @ExcelField(title = "品牌 ", sort = 180,column=18)
    private String vehicleBrand;

    @ApiModelProperty("子品牌")
    @ExcelField(title = "子品牌 ", sort = 190,column=19)
    private String subBrand;

    @ApiModelProperty("产品线")
    @ExcelField(title = "产品线 ", sort = 200,column=20)
    private String productionLine;

    @ApiModelProperty("子产品线")
    @ExcelField(title = "子产品线 ", sort = 210,column=21)
    private String subProductionLine;
    @ApiModelProperty("吨位")
    @ExcelField(title = "吨位 ", sort = 220,column=22)
    private Double  weight;

    @ApiModelProperty("车身状态")
    @ExcelField(title = "车身状态 ", sort = 230,column=23)
    private String  productBodyStatus;

    @ApiModelProperty("轴距")
    @ExcelField(title = "轴距 ", sort = 240,column=24)
    private String  wheelBase;
    @ApiModelProperty("内编")
    @ExcelField(title = "内编 ", sort = 250,column=25)
    private String  innerCode;

    @ApiModelProperty("物料号")
    @ExcelField(title = "物料号 ", sort = 260,column=26)
    private String materialNo;

    @ApiModelProperty("16位物料号")
    @ExcelField(title = "16位物料号 ", sort = 270,column=27)
    private String material16Code;
    @ApiModelProperty("物料描述")
    @ExcelField(title = "物料描述 ", sort = 280,column=28)
    private String materialDesc;

    @ApiModelProperty("公告号")
    @ExcelField(title = "公告号 ", sort = 290,column=29)
    private String batchNo;

    @ApiModelProperty("VIN号")
    @ExcelField(title = "VIN号", sort = 300,column=30)
    private String vinNo;
    @ApiModelProperty("厂区/物流部")
    @ExcelField(title = "厂区/物流部", sort = 300,column=31)
    private String warehouseName;
    @ApiModelProperty("物流公司中心库真实停车位（增加）")
    @ExcelField(title = "物流公司中心库真实停车位（增加）", sort = 300,column=32)
    private String centerName;
    @ApiModelProperty("物流公司真实入库日期（增加）")
    @ExcelField(title = "物流公司真实入库日期（增加）", sort = 300,column=33)
    private Date realDate;
    @ApiModelProperty("物流公司外租库仓库名称")
    @ExcelField(title = "物流公司外租库仓库名称", sort = 300,column=34)
    private String leasingName;
    @ApiModelProperty("物流公司外租库真实停车位（增加）")
    @ExcelField(title = "物流公司外租库真实停车位（增加）", sort = 300,column=35)
    private String leasingCode;
    @ApiModelProperty("溢库短驳外租库真实日期（增加）")
    @ExcelField(title = "溢库短驳外租库真实日期（增加）", sort = 300,column=36)
    private Date leasingDate;

    @ApiModelProperty("销售组织")
    @ExcelField(title = "销售组织 ", sort = 310,column=37)
    private String salesOrgNo;

    @ApiModelProperty("分销渠道")
    @ExcelField(title = "分销渠道 ", sort = 320,column=38)
    private String salesDistributor;

    @ApiModelProperty("销售大区")
    @ExcelField(title = "销售大区 ", sort = 330,column=39)
    private String salesRegion;
    @ApiModelProperty("市场部")
    @ExcelField(title = "市场部 ", sort = 340,column=40)
    private String salesMarketDept;

    @ApiModelProperty("收货人编码")
    @ExcelField(title = "经销商代号 ", sort = 350,column=41)
    private String consigneeNo;
    @ApiModelProperty("收货人")
    @ExcelField(title = "经销商描述 ", sort = 360,column=42)
    private String consigneeName;

    @ApiModelProperty("驾驶室")
    @ExcelField(title = "驾驶室 ", sort = 370,column=43)
    private String driverCabinDesc;

    @ApiModelProperty("变速器型号")
    @ExcelField(title = "变速器型号 ", sort = 380,column=44)
    private String transmission;

    @ApiModelProperty("车型代号")
    @ExcelField(title = "车型代号 ", sort = 390,column=45)
    private String vehicleModel;
    @ApiModelProperty("发动机号")
    @ExcelField(title = "发动机号 ", sort = 400,column=46)
    private String engineNo;

    @ApiModelProperty("发动机型号")
    @ExcelField(title = "发动机型号 ", sort = 410,column=47)
    private String engineModel;

    @ApiModelProperty("DMS订单号")
    @ExcelField(title = "DMS订单号 ", sort = 420,column=48)
    private String dmsOrderNo;

    @ApiModelProperty("生产日期")
    @ExcelField(title = "生产日期 ", sort = 430,column=49)
    private Date produceDate;

    @ApiModelProperty("订单原因")
    @ExcelField(title = "订单原因 ", sort = 440,column=50)
    private String orderReason;
    @ApiModelProperty("描述")
    @ExcelField(title = "描述 ", sort = 450,column=51)
    private String orderRemark;

    @ApiModelProperty("采购定单号")
    @ExcelField(title = "采购定单号 ", sort = 460,column=52)
    private String purchaseOrderNo;

    @ApiModelProperty("是否批导")
    @ExcelField(title = "是否批导 ", sort = 470,column=53)
    private String batchProcessYn;
    @ApiModelProperty("承运商")
    private String carrier;
    @ApiModelProperty("承运商ID")
    private String carrierNo;

    @ApiModelProperty("轿运装车类型")
    private String vehicleLoadType;



    @ApiModelProperty("收货人手机号")
    private String consigneePhoneNo;
    @ApiModelProperty("收货人城市")
    private String destination;
    @ApiModelProperty("收货人地址")
    private String consigneeAddress;

    @ApiModelProperty("排放")
    private String paiFang;
    @ApiModelProperty("马力")
    private String enginePower;
    private String chassisCertNumber;


    private String vehicleFueType;
    private String certificatesNo;

    private String manufactory;


    private String vehicleName;

    private Date certificatesDate;
    @ApiModelProperty("图号")
    private String skuCode;
    @ApiModelProperty("")
    private String orderNo;
    @ApiModelProperty("合同单价仓储费")
    private Double unitContractPrice;
    @ApiModelProperty("")
    private String shipByPackOrqty;
    @ApiModelProperty("物料名称")
    private String materialName;

    @ApiModelProperty("实际收到数量")
    private Double arrivedQty;

    @ApiModelProperty("库区")
    private String areaNo;
    @ApiModelProperty("库位")
    private String locationNo;

    @ApiModelProperty("库名称")
    private String stageName;
    @ApiModelProperty("")
    private String measUnitNo;
    @ApiModelProperty("")
    private String site;
    @ApiModelProperty("")
    private BigDecimal conversionCoefficient;

    @ApiModelProperty("")
    private String status;





    @ApiModelProperty("")
    private Long version;

    @ApiModelProperty("")
    private String receiptType;

    @ApiModelProperty("")
    private BigDecimal price;

    @ApiModelProperty("")
    private BigDecimal otherFees;

    @ApiModelProperty("")
    private String checkerId;

    @ApiModelProperty("")
    private BigDecimal truckFee;



    @ApiModelProperty("")
    private String receiptId;



    @ApiModelProperty("")
    private String dockNo;

    @ApiModelProperty("")
    private String companyNo;



    @ApiModelProperty("")
    private String id;

    @ApiModelProperty("是否有效（数据字典sys_yn_type，默认1-是）")
    private String isValid;



    @ApiModelProperty("创建时间")
    private Date createTime;

    @ApiModelProperty("更新人")
    private String updateBy;

    @ApiModelProperty("更新时间")
    private Date updateTime;

    @ApiModelProperty("创建人名称")
    private String createByName;

    @ApiModelProperty("更新人名称")
    private String updateByName;

    @ApiModelProperty("rfid")
    private String rfidCode;

    @ApiModelProperty("customerName")
    private String customerName;

    @ApiModelProperty("库位")
    private List<TbWmsMaterialInLocationVo> locationItems;
    @ApiModelProperty("应收")
    private List<AccountingArVo> lineArs;
    @ApiModelProperty("库位")
    private List<TbWmsMaterialDeliveryLineVo> deliverys;
    @ApiModelProperty("上架操作")
    private List<TWmsReciptIntoLocPlanVo> putInLocs;


    @ApiModelProperty("volume")
    private Double volume;

    @ApiModelProperty("length")
    private Double length;
    @ApiModelProperty("width")
    private Double width;
    @ApiModelProperty("high")
    private Double high;
    @ApiModelProperty("")
    private BigDecimal packQty;
    @ApiModelProperty("highMeasUnit")
    private String highMeasUnit;
    @ApiModelProperty("packing")
    private String packing;
    @ApiModelProperty("unitVolume")
    private Double unitVolume;
    @ApiModelProperty("unitWeight")
    private Double unitWeight;
    @ApiModelProperty("weightMeasUnit")
    private String weightMeasUnit;
    @ApiModelProperty("qtyPerPack")
    private Integer qtyPerPack;
    @ApiModelProperty("countQuantity")
    private Double countQuantity;
    @ApiModelProperty("countPrice")
    private Double countPrice;
    @ApiModelProperty("countTotalPrice")
    private Double countTotalPrice;

}
